This invention relates, in general, to stream processing, and in particular, to facilitating state sharing in stream processing environments, including distributed stream processing environments.
Processing within a data processing system can include various computational paradigms, including non-stream processing and stream processing. In non-stream processing, data is typically received, stored in memory or elsewhere and later processed. In contrast, in stream processing, data is processed as it is continuously received.
Examples of stream processing systems include large scale sense-and-respond systems, which continuously receive external signals in the form of one or more streams from one or more sources and employ analytics aimed at detecting critical conditions and, ideally, responding in a proactive fashion. Examples of such systems range from systems deployed for monitoring and controlling manufacturing processes, power distribution systems, and telecommunication networks, to environmental monitoring systems, to algorithmic trading platforms, etc.
Stream processing environments run stream processing applications, and those applications access data, such as state (e.g., application specific data structures whose contents are to be maintained and manipulated for a period of time). That data may, in certain situations, be shared between applications or even between components of one application.